﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using CapaNegocio;
using CapaEntidades;
using System.Web.Script.Serialization;

namespace CapaPresentacion
{
    /// <summary>
    /// Descripción breve de wsReutilizables
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // Para permitir que se llame a este servicio web desde un script, usando ASP.NET AJAX, quite la marca de comentario de la línea siguiente. 
    [System.Web.Script.Services.ScriptService]
    public class wsReutilizables : System.Web.Services.WebService
    {

        [WebMethod]
        public String spListaLineas()
        {
            try
            {                                    
                List<enLinea> lstLinea= new List<enLinea>();
                lstLinea = neLinea.Instancia.spListaLineas();
                var jsonSerialiser = new JavaScriptSerializer();
                var json = jsonSerialiser.Serialize(lstLinea);
                return json;
            }
            catch (Exception e)
            {

                return "{\"val\":\"0\",\"msg\":\"" + e.Message.ToString() + "\"}";
            }
            
        }

        [WebMethod]
        public String almacenLista()
        {
            try
            {
                List<enAlmacen> lstAlmacen = new List<enAlmacen>();
                lstAlmacen = neAlmacen.almacenLista();
                var jsonSerialiser = new JavaScriptSerializer();
                var json = jsonSerialiser.Serialize(lstAlmacen);
                return json;

            }
            catch (Exception e)
            {

                return "{\"val\":\"0\",\"msg\":\"" + e.Message.ToString() + "\"}";
            }

        }

        [WebMethod]
        public String spProductosXCategoria(int linea_id)
        {
            try
            {
                List<enProducto> lstProducto = new List<enProducto>();
                lstProducto = neProducto.Instancia.spProductosXLinea(linea_id);
                var jsonSerialiser = new JavaScriptSerializer();
                var json = jsonSerialiser.Serialize(lstProducto);
                return json;
            }
            catch (Exception e)
            {

                return "{\"val\":\"0\",\"msg\":\"" + e.Message.ToString() + "\"}";
            }
        }

        [WebMethod]
        public String fnPoblarAlmacen()
        {
            try
            {
                wsLogisticaRef.Service1SoapClient service = new wsLogisticaRef.Service1SoapClient();
                List<wsLogisticaRef.enAlmacen> lst = service.ListarAlmacen_VENTAS();
                List<enAlmacen> lstAlmacen = new List<enAlmacen>();
                foreach (wsLogisticaRef.enAlmacen almacen in lst)
                {
                    enAlmacen a = new enAlmacen();
                    a.alm_id = almacen.Almacen_ID;
                    a.alm_nombre = almacen.Sede_Nombre;
                    a.alm_ciudad = almacen.Sede_Departamento;
                    a.alm_direccion = almacen.Sede_Direccion;
                    lstAlmacen.Add(a);
                }

                enAlerta i = neAlmacen.Instancia.spRecepcionarAlmacenXML(lstAlmacen);
                var jsonSerialiser = new JavaScriptSerializer();
                var json = jsonSerialiser.Serialize(i);
                return json; 

            }
            catch (Exception e)
            {

                return "{\"val\":\"0\",\"msg\":\"" + e.Message.ToString() + "\"}";
            }                      
        }
        [WebMethod]
        public String fnPoblarLineas()
        {
            try
            {
                wsLogisticaRef.Service1SoapClient service = new wsLogisticaRef.Service1SoapClient();

            List<wsLogisticaRef.enLinea> lst = service.ListarLinea_VENTAS();
            List<enLinea> lstAlmacen = new List<enLinea>();
            foreach (wsLogisticaRef.enLinea almacen in lst)
            {
                enLinea a = new enLinea();
                a.lin_id = almacen.Linea_ID;
                a.lin_descripcion = almacen.Linea_Nombre;
                lstAlmacen.Add(a);
            }

            enAlerta i = new enAlerta();
                i = neLinea.Instancia.spRecepcionarLineaXML(lstAlmacen);
            var jsonSerialiser = new JavaScriptSerializer();
            var json = jsonSerialiser.Serialize(i);
            return json; 

            }
            catch (Exception e)
            {

                return "{\"val\":\"0\",\"msg\":\"" + e.Message.ToString() + "\"}";
            }                      
        }

        [WebMethod]
        public String fnPoblarProducto()
        {
            try
            {
                wsLogisticaRef.Service1SoapClient service = new wsLogisticaRef.Service1SoapClient();

                List<wsLogisticaRef.enProducto> lst = service.ListarProducto_VENTAS();
                List<enProducto> lstAlmacen = new List<enProducto>();
                foreach (wsLogisticaRef.enProducto producto in lst)
                {
                    enProducto a = new enProducto();
                    a.pro_codigo = Convert.ToString(producto.Producto_ID);
                    a.pro_presentacion = producto.Producto_Nombre;
                    a.pro_uniMedida = producto.Presentacion;
                    a.idLinea = producto.Linea_ID;
                    lstAlmacen.Add(a);
                }

                enAlerta i = neProducto.Instancia.spRecepcionarProductoXML(lstAlmacen);
                var jsonSerialiser = new JavaScriptSerializer();
                var json = jsonSerialiser.Serialize(i);
                return json;

            }
            catch (Exception e)
            {

                return "{\"val\":\"0\",\"msg\":\"" + e.Message.ToString() + "\"}";
            }
        }

        [WebMethod]
        public String fnPoblarCargos()
        {
            try
            {
                wsPlanillasRef.WS_PLANILLASoapClient service = new wsPlanillasRef.WS_PLANILLASoapClient();

                List<wsPlanillasRef.eCargo> lst = service.ListarCargo();
                List<enCargo> lstAlmacen = new List<enCargo>();
                foreach (wsPlanillasRef.eCargo w in lst)
                {
                    enCargo a = new enCargo();
                    a.car_id = w.idCargo;
                    a.car_descripcion = w.Descripcion;
                    lstAlmacen.Add(a);
                }

                enAlerta i = neUsuario.Instancia.spRecepcionarCargoXML(lstAlmacen);
                var jsonSerialiser = new JavaScriptSerializer();
                var json = jsonSerialiser.Serialize(i);
                return json;

            }
            catch (Exception e)
            {

                return "{\"val\":\"0\",\"msg\":\""+e.Message.ToString()+"\"}";
            }
        }

        [WebMethod]
        public String fnPoblarPersonal()
        {
            try
            {
               wsPlanillasRef.WS_PLANILLASoapClient service = new wsPlanillasRef.WS_PLANILLASoapClient();

                List<wsPlanillasRef.eEmpleado> lst = service.ListarEmpelado();
                List<enPersonal> lstAlmacen = new List<enPersonal>();
                foreach (wsPlanillasRef.eEmpleado w in lst)
                {
                    enPersonal a = new enPersonal();
                    a.per_id = w.idEmpleado;
                    a.per_nombres = w.Nombres;
                    a.per_apellidos = w.Apellidos;
                    a.per_dni = w.Dni;
                    enCargo c = new enCargo();
                    c.car_id = w.cargos.idCargo;
                    a.cargo = c;
                    lstAlmacen.Add(a);
                }

                enAlerta i = neUsuario.Instancia.spRecepcionarPersonalXML(lstAlmacen);
                var jsonSerialiser = new JavaScriptSerializer();
                var json = jsonSerialiser.Serialize(i);
                return json;

            }
            catch (Exception e)
            {

                return "{\"val\":\"0\",\"msg\":\"" + e.Message.ToString() + "\"}";
            }
        }

        
        [WebMethod]
        public String spClienteAll()
        {
            try
            {
                List<enCliente> lstCliente = new List<enCliente>();
                lstCliente = neCliente.Instancia.spListarClienteAll();
                var jsonSerialiser = new JavaScriptSerializer();
                var json = jsonSerialiser.Serialize(lstCliente);
                return json;
            }
            catch (Exception e)
            {

                return "{\"val\":\"0\",\"msg\":\"" + e.Message.ToString() + "\"}";
            }

        }

        [WebMethod]
        public String spListaTipCliente()
        {
            try
            {
                List<enTipoCliente> lstTipCli = new List<enTipoCliente>();
                lstTipCli = neTipoCliente.combotipCli();
                var jsonSerialiser = new JavaScriptSerializer();
                var json = jsonSerialiser.Serialize(lstTipCli);
                return json;
            }
            catch (Exception e)
            {

                return "{\"val\":\"0\",\"msg\":\"" + e.Message.ToString() + "\"}";
            }

        }

        [WebMethod]
        public String spListaAlmacenXCliente(int id)
        {
            try
            {
                List<enAlmacenCliente> lstAlmCliente = new List<enAlmacenCliente>();
                lstAlmCliente = neAlmacenCliente.spListaAlmacenXCliente(id);
                var jsonSerialiser = new JavaScriptSerializer();
                var json = jsonSerialiser.Serialize(lstAlmCliente);
                return json;
            }
            catch (Exception e)
            {

                return "{\"val\":\"0\",\"msg\":\"" + e.Message.ToString() + "\"}";
            }
           
        }

        [WebMethod]
        public String spEmpleadoAll()
        {
            try
            {
                List<enPersonal> lstPersonal = new List<enPersonal>();
                lstPersonal = nePersonal.Instancia.spListarPersonalAll();
                var jsonSerialiser = new JavaScriptSerializer();
                var json = jsonSerialiser.Serialize(lstPersonal);
                return json;
            }
            catch (Exception)
            {
                throw;
            }

        }



        [WebMethod]
        public String spUpdateUsuaPerso(String user,int idper)
        {
            try
            {
                enAlerta a = new enAlerta();
                a = nePersonal.Instancia.spUpdateUsuaPerso(user,idper);
                var jsonSerialiser = new JavaScriptSerializer();
                var json = jsonSerialiser.Serialize(a);
                return json;
            }
            catch (Exception)
            {
                throw;

            }
        }

        [WebMethod]
        public String spUpdateUsuaPass(String pass, int idperpass)
        {
            try
            {
                //enPersonal l = new enPersonal();
                //l.user = user;
                //l.per_id = idper;

                enAlerta a = new enAlerta();
                a = nePersonal.Instancia.spUpdatePassPerso(pass, idperpass);
                var jsonSerialiser = new JavaScriptSerializer();
                var json = jsonSerialiser.Serialize(a);
                return json;
            }
            catch (Exception)
            {
                throw;

            }
        }

         [WebMethod]
        public String spIngresoCliente(String txtRucDni, String txtRazSocialCliente, int txtTipCliente,
             String txtTelefono, String txtDireccion, String txtEmail, String txtEstado)
        {
            try
            {
                enCliente l = new enCliente();
                l.cli_rucdni = txtRucDni;
                l.cli_razonSocial = txtRazSocialCliente;
                l.tipcli_id = txtTipCliente;
                l.cli_telefono = txtTelefono;
                l.cli_direccionFiscal = txtDireccion;
                l.cli_email = txtEmail;
                l.cli_estado = txtEstado;
               
                int i = neCliente.Instancia.InsertarCliente(l);
                enAlerta a = new enAlerta();
                String v = "";
                if (i > 0)
                    v = "Registro Correcto";
                a.msg = v;
                a.val = i;
                var jsonSerialiser = new JavaScriptSerializer();
                var json = jsonSerialiser.Serialize(a);
                return json;
            }
            catch (Exception)
            {
                throw;
     
            }
        }


         [WebMethod]
         public String spUpdateAlmacen(int idAlm, String dir, int est)
         {
             try
             {
                 enAlerta a = new enAlerta();
                 a = neCliente.Instancia.spUpdateAlmacen(idAlm, dir, est);
                 var jsonSerialiser = new JavaScriptSerializer();
                 var json = jsonSerialiser.Serialize(a);
                 return json;
             }
             catch (Exception)
             {
                 throw;

             }
         }



    }
}
